Middleware is computer software that provides a set of services that allows multiple processes running on one or more machines to interact. Middleware has evolved to provide for interoperability in support of a gradual shift to coherent distributed architectures, which may be used to support and simplify complex distributed applications. Middleware occupies a middle layer between application software that may be executing on different operating system platforms. Examples of middleware include enterprise application integration (EAI) software, transaction monitors, and message queue software. Middleware has gained popularity as a solution to problems of linking newer applications to older legacy systems. Middleware has also facilitated distributed processing, the connection of multiple applications to create a larger application, usually over a network. Middleware services provide a functional set of application programming interfaces that may allow an application to locate transparently across the network, thus providing interaction with another service or application. Middleware may support software developers avoid having to write application programming interfaces for every control program, by serving as an independent programming interface for their applications.